#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <gtkmm.h>
#include <giomm.h>

#include "writingview.h"
#include "tagview.h"
#include "docview.h"
#include "searchview.h"
#include "filterview.h"
#include "readingview.h"

class MainWindow : public Gtk::Window
{
public:
    MainWindow(const std::string&);
    virtual ~MainWindow();
protected:
    virtual void on_action_file_synczotero();
    virtual void on_action_file_export();
    virtual void on_action_file_import();
    virtual void on_action_file_quit();
    virtual void on_action_view_fullscreen();
    virtual void on_action_view_book();
    virtual void on_action_view_article();
    virtual void on_action_view_noattachment();
    virtual void on_action_view_allitems();
    virtual void on_action_filter_notreading();
    virtual void on_action_filter_notag();
    virtual void on_action_filter_nopublisher();
    virtual void on_action_help_about();
    void install_menu_hints(const Glib::RefPtr<Gtk::Action>& action, Gtk::Widget* widget);
    void on_show_menu_tip(const Glib::RefPtr<Gtk::Action>& action);
    void on_clear_menu_tip();

private:
    void add_iconset();

    Glib::RefPtr<Gtk::ToggleAction> m_fullscreenAction;
    Gtk::Statusbar statusbar;
    std::string dbfile;
    sdms::documents doc;

    PublisherView publisherview;
    WritingView writingview;
    TagView tagview;
    DocView docview;
    //SearchView searchview;
    FilterView filterview;
    ReadingView readingview;
};

#endif // MAINWINDOW_H
